Machine learning based customized notification generation and authentication system

ABSTRACT

A system for employing machine learning to generate customized notifications for a user is provided. The system may identify a landmark in proximity to a user&#39;s mobile device and may obtain information associated with products or services offered by the landmark. While the mobile device is within a predetermined distance of the landmark, a machine learning model may be employed to generate a customized notification, such as an offer—e.g., a discount or a special financing offer for one of the identified products—generated specifically for use by the user based on the user&#39;s spending and/or financing history. The customized notification may be transmitted to the mobile device with a security key for accessing the offer. In response to receiving an indication that the security key was selected and the product purchased, the user may be authenticated and the offer may be applied to an account associated with the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of and claims priority toco-pending U.S. patent application Ser. No. 17/336,879 filed on Jun. 2,2021, entitled “Machine Learning Based Customized NotificationGeneration and Authentication System,” the disclosure of which is herebyincorporated by reference in its entirety.

FIELD OF USE

Aspects of the disclosure relate generally to notification generationmethods, and more particularly to methods of employing machine learningto generate customized notifications (e.g., offers) and methods ofauthenticating redemption of an offer.

BACKGROUND

Computing devices are often used to help users shop for and purchaseitems, but such devices are often limited in their ability to help usersshop in traditional brick-and-mortar stores. For example, while a usermight be able to use their smartphone to quickly search for products anddeals on a website, a user might not be able to use their smartphonewhen trying to find a hard-to-find ingredient in a grocery store or whentrying to find a good deal on a particular item of interest sold by abrick and mortar merchant not offering a deal on the product. However,the increasing popularity of portable and wearable devices has made itincreasingly easy to receive information about shoppers, such as theirlocation in a store, their past shopping history, product interests,spending proclivity, financial health, credit-worthiness, or the like.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of various aspects of the disclosure. The summary is notan extensive overview of the disclosure. It is neither intended toidentify key or critical elements of the disclosure nor to delineate thescope of the disclosure. The following summary merely presents someconcepts of the disclosure in a simplified form as a prelude to thedetailed description below.

Aspects of the disclosure relate to systems, apparatuses,computer-readable media, and methods for generating and providing tousers, in real-time, customized notifications (e.g., purchase offers)while the user is within a predetermined distance from a landmark, suchas a merchant store. Information about the user's spending habits,payments habits, purchase history (such as products or servicespurchased, types and locations of merchants or vendors purchased from,etc.), web browsing habits, hobbies, and/or interests may be monitored,collected, and/or analyzed to make determinations about the types ofproducts or services the user is interested in, the user's financialhealth, credit-worthiness, etc. and customized notification (e.g.,purchase offers) may be generated based on the determinations. Forexample, based on determining that a history of purchases made by a userindicate that the user is vegetarian, the user might be provided adiscount code for a new vegetarian meal kit. The notification (e.g.,purchase offer) may be generated in real-time while the user is inproximity to a product determined to be of interest to the user. Forexample, a notification about an offer for a toothbrush might begenerated in real-time when a user walks into a dental care aisle in agrocery store. In accordance with an aspect of the disclosure, alocation of the user may be determined and, based on the location of theuser, a landmark within a predetermined distance of the user may beidentified. The landmark might be, for example, another computing device(e.g., a point-of-sale system), a store, an aisle in the store, or thelike. Products or services offered for sale at the landmark may furtherbe determined and, while the user is within proximity to the landmark, atrained machine learning model may be used to generate and selectcustomized notifications for products determined to be of interest tothe user and offered for sale at the landmark. The user may be notifiedwhile the user is within proximity of the landmark, such as while theuser is shopping in the landmark. The notification may include a uniquesecurity key usable by the user to redeem the offer and usable by thesystem to authenticate that the user for whom the notification wasgenerated is the individual redeeming the offer. Upon successfullyauthenticating redemption of the offer and receiving valid proof ofpurchase, the offer may be applied directly to an account of the user,such as a bank account or a credit card account. The trained machinelearning model might be updated based on, for example, the acceptance ofthe offer by the user. The trained machine learning model mightadditionally be updated based on a rejection of the offer by the user.

These and other features and advantages of the disclosure will beapparent from the detailed description provided below.

BRIEF DESCRIPTION OF THE DRAWINGS

Some features are shown by way of example, and not by limitation, in theaccompanying drawings. In the drawings, like numerals reference similarelements.

FIG. 1 illustrates an example computing environment for implementing anotification generation and authentication system, in accordance withone or more aspects described herein.

FIG. 2 illustrates an example computing device for use in a notificationgeneration and authentication system, in accordance with one or moreaspects described herein.

FIGS. 3A-3B are flowcharts of example methods of a notificationgeneration and authentication system, in accordance with one or moreaspects described herein.

FIGS. 4A-4F are example user interfaces of an application used in anotification generation and authentication system, in accordance withone or more aspects described herein.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown, by way of illustration, various embodiments in whichaspects of the disclosure may be practiced. It is to be understood thatother embodiments may be utilized and structural and functionalmodifications may be made without departing from the scope of thepresent disclosure. Aspects of the disclosure are capable of otherembodiments and of being practiced or being carried out in various ways.In addition, it is to be understood that the phraseology and terminologyused herein are for the purpose of description and should not beregarded as limiting. Rather, the phrases and terms used herein are tobe given their broadest interpretation and meaning.

Aspects described herein improve the functioning of computers byimproving the process in which notifications (e.g., regarding products)are provided to users. At present, notifications regarding financialtransactions (e.g., product offers) are generally provided to users viae-mail, text messages, or other methods. Such notifications areextremely limited in that they often are based on past activity by theuser online, without respect to their present location and theirshopping habits. Moreover, such notifications are often pre-programmedand applicable to large populations, and thus are not specific to auser, such that they might be ignored. As a result, modern notificationsare often computationally wasteful: today, large amounts of e-mailtraffic (and thus Internet bandwidth, file storage, or the like) isdevoted to useless marketing messages. The present system issignificantly more targeted: rather than blasting e-mails or textmessages out to a potentially disinterested audience, the present systemindividualizes notifications in a manner which increases the likelihoodthat a user will react to them. In this way, rather than sendingmillions of e-mails out, organizations might instead send a smaller setof targeted notifications to users as they, for example, browsethroughout physical stores.

As a preliminary introduction to the discussion below, aspects describedherein relate to leveraging various sources of data about a user toprovide that user notifications regarding offers for products, services,financial transactions, or the like. By leveraging the location of auser (as determined, e.g., by using GPS coordinates received from theuser's personal devices, by using WI-FI or cellular triangulationtechniques, etc.) and information about that user (e.g., their purchasehabits, preferences, etc.), the system described herein can providenotifications (e.g., customized offers) to a user. For instance, a usermight be provided an offer, such as a discount for a new product,favorable financing terms for a specific product, or the like, when theuser is within a predetermined proximity of that new product in a store.This system thereby leverages a variety of data related to a user toprovide that user with notifications (e.g., custom offers) which mightotherwise not be provided in real-life shopping opportunities. Indeed,in many respects, the process described herein leverages user data anduser location information to provide the user with a shopping experiencenot dissimilar to an online shopping experience.

Aspects discussed herein may relate to methods, systems, devices, andcomputer-readable media for a notification generation and authenticationsystem.

Referring to FIG. 1 , an example computing environment for annotification generation and authentication system 100 is provided. Thenotification generation and authentication system 100 may include one ormore systems or computing devices, such as a server 110, a database 120,one or more user computing devices 130 (e.g., a first user computingdevice 130 a, a second user computing device 130 b, and/or a third usercomputing device 130 c), one or more merchant computing devices 140, apublic network 160, and a private network 170. Although the varioussystems and computing devices in the computing environment 100 are shownand described as separate devices, one or more of the computing devices,may be part of a single computing device without departing from thedisclosure.

The server 110 may be a computing device, such as a server, used by abanking institution or other financial institution to providefunctionality associated with generating customized purchase offers toprovide to its users. The users may hold a transaction account, such asa bank account, a credit card account, a commercial account, a line ofcredit, or the like, maintained by the banking institution. The bankinginstitution may generate, using one more trained machine learningmodels, customized or personalized notification regarding one or moreproducts or services. The notification may be generated based on acombination of factors, such as the user's proclivity for certainproducts and/or services, the user's spending proclivity, the determinedfinancial health and/or credit risk associated with the user, ageographical location of the user, or the like. The notification mayinclude, for example, an offer related to a discounted price forpurchasing a specific product or a service, a rebate that may be appliedafter purchasing a specific product or service, a micro-credit offer(e.g., a reduced or promotional interest rate, no required minimumpayments for a period of time, a credit limit increase, or the like)associated with the purchase of a specific product or service, anadvertisement for a product or service, a warning about a product orservice (e.g., an allergy notice regarding a product), a recommendation,or the like. The generated notification (e.g., an offer) may beindependent of a promotional offer provided by a merchant or an entityassociated with the product or service, and may be a notificationrelated to an offer made by the banking institution and applied to theuser's transaction account by the banking institution upon proof ofpurchase of the product or service. The notification may be transmittedto the user via a user device associated with the user. The notificationmay be acknowledged by the user. In the case that the notification isrelated to an offer, the user may redeem the offer by accessing thenotification and the notification may be configured such that only theuser for whom the notification was generated may redeem the offer. Tothis end the user may be authenticated upon attempting to redeem theoffer. If the user is successfully authenticated, the offer may beredeemed by the user. Upon confirmation or proof that a purchaseassociated with the offer was made, the offer may be processed andapplied to a transaction account associated with the user. After theoffer has been redeemed and processed, one or more trained machinelearning models may be updated with information associated withconditions under which the successful redemption of the offer occurred.For example, the training model may be updated with informationincluding the product or service associated with the offer; a merchantat which the product or service was purchased; a date and time oftransmission of the notification regarding the offer; a date and timethat the offer was accessed by the user; a date and time that the offerwas redeemed; a date and time associated with the purchase transaction;a value associated with the offer; a type of the offer; a price of theproduct or service; a distance, at the time the offer was generated,between a location of the user and a location of the merchant from whomthe product or service was purchased; and/or a distance between thelocation of user and the location of merchant when the offer wasaccessed.

In the case that the notification is related to an offer, if the userdoes not access the offer within a predefined period a time, the offermay be canceled or rescinded and the user may be unable to access theoffer. The one or more trained machine learning models may be updated inthis case as well. For example, the training machine learning model maybe updated with information including the product or service associatedwith the offer; a merchant offering the product or service for sale; adate and time of transmission of the notification regarding the offer; avalue associated with the offer; a type of the offer; a price of theproduct or service; and/or a distance, at the time the offer wasgenerated, between a location of the user and a location of the merchantoffering the product or service for sale.

The server 110 may include one or more modules or applications, such asa banking application 111, a system configuration module 112, a useranalysis module 113, a notification generation module 114, anotification selection module 115, an authentication module 116, anoffer processing module 117, and a machine learning training module 118.

The banking application 111 may be an application controlled by theserver 110. The banking application 111 may be associated with theuser's bank account, credit card account, commercial account, line ofcredit, or the like. The banking application 111 may be used by the userto perform various account-related functions, such as viewing accounttransactions, making payments, depositing checks, transferring funds,sending funds, etc. Additionally or alternatively, the bankingapplication 111 may be used to receive and redeem customized offers forthe purchase of products or services.

The banking application 111 may be a server-based application installedand executed at the server 110. The server-based banking application 111may be accessed through a website, such as a banking website, by aclient device, such as by the third user computing devices 130 c.Additionally or alternatively, the banking application 111 may be aclient-based application installed and executed on a client device, suchas the first user computing device 130 a and/or the second usercomputing device 130 b.

The system configuration module 112 may be used by the server 110 toconfigure one or more aspects of the notification generation andauthentication system 100. The server 110 may cause the systemconfiguration module 112 to control a download of the bankingapplication 111 to the one or more user computing devices 130, uponrequest by a user. In some cases, downloading may additionally oralternatively include downloading one or more web browser extensionsincluding scripts for capturing web browsing associated with onlineshopping. For instance, the user may make a request via an online appstore or other website to download the banking application 111 and/or aweb browser extension to the first user computing device 130 a. In thiscase, the server 110 may control the system configuration module 112 todownload the banking application 111 to the first user computing device130 a. Once downloaded, the server 110 may cause the systemconfiguration module 112 to output a user interface, such as userinterface 400 a and/or 400 b shown in FIGS. 4A and 4B, via the bankingapplication 111, for configuring the notification generation andauthentication system 100. While reference is made to the first usercomputing device 130 a here and throughout the description, suchreference is for convenience of description only and any of the one ormore user computing devices 130 may be interchangeably used.

The user interface, such as shown in user interface 400 a, may provideoptions for the user to input personal information such as gender, age,household income, number and/or ages of children, etc. In someinstances, the user interface may be prepopulated with personalinformation already know about the user and maintained in the database120. The user interface, such as shown in user interface 400 a, mayadditionally provide options for entering user preferences related tothe notification generation and authentication system 100, such aspreferred merchants, hobbies, interests, spending limits, a maximumdistance willing to travel to purchase a product or service, etc. Theuser interface, such as shown in user interface 400 a, may additionallyprovide options for entering preferences related to notifications, suchas a time for presenting notifications or not presenting notification, amaximum number of notifications to present at a time, types ofnotifications that should or should not be presented to the user, or thelike. The user interface, such as shown in user interface 400 b, mayadditionally provide options for the user to identify one or more bankaccounts, credit card accounts, or the like that should be used with thenotification generation and authentication system 100 to collect theuser's purchase history and monitor the user's spending and paymenthabits. The user interface, such as user interface 400 b, mayadditionally provide options for entering information for one or moresocial media accounts associated with the consumer. The social mediaaccounts may be scanned and monitored to collect data associated withthe user's spending habits, hobbies, interests, etc. The user interface,such as user interface 400 b, may additionally provide options forentering information for one or more email accounts associated with theconsumer. The email accounts may be scanned and monitored to collectdata associated with the user's spending. For instance, the emailaccounts may be monitored for purchase receipts or invoices.

The user interface, such as user interface 400 b, may additionallyprovide options for entering information for one or more social mediaaccounts associated with friends or acquaintances of the user, so that anetwork of friends may be established for identifying spending habits,hobbies, interests, etc. of the group of individuals making up thenetwork. The notification generation and authentication system 100 mayseek authorization from each of the identified friends and acquaintancesto participate in the notification generation and authentication system100 and to have their social media accounts and/or other accountsscanned and monitored to collect information associated with theirspending habits, hobbies, interests, etc. in exchange for customizedpurchase offers. The notification generation and authentication system100 may provide additional notifications (e.g., offers) or offers ofincreased value to users based on the number of individuals in theuser's network of friends.

The user interface, such as shown in user interface 400 b, mayadditionally provide an option for the user to register one or moredevices that may be used for receiving and accessing the customizedoffers. For instance, the user interface, such as shown in userinterface 400 b, may display a button 402 used to initiate a devicediscovery process for discovering devices to be registered. The devicediscovery process may identify devices in various ways. For example, thedevice discovery process may identify device that are connected to anetwork, such as the public network 160, to which the first usercomputing device 130 a is also connected. The device discovery processmay identify devices within a certain proximity of the first usercomputing device 130 a using communication protocols such as Bluetooth,Zigbee, Wi-Fi Direct, near-field communication (NFC), or the like. Alist of the discovered devices may be displayed on the user interface,and the user may select one or more of the discovered devices toregister the devices with the system. In some instances, the userinterface 400 b may provide an option, such as via button 404, for theuser to request to receive an activation link for registering a device.The user interface may provide an option for the user to enter an emailor a telephone number for receiving the activation link and the server110 may cause the system configuration module 112 to send a messagecomprising the activation link to the provided email or telephonenumber. The user may thereafter select the activation link from a devicethe user wishes to register. Upon selection, a script associated withthe activation link may capture identification information associatedwith the device from which the selection is made and may cause thesystem configuration module 112 to register the device with thenotification generation and authentication system 100 using the capturedidentification information. Additionally or alternatively, the user maymanually register a device by providing identification information forthe device, such as a MAC address of the device. The user interface mayalso provide options for deregistering previously registered devicesthat the user no longer wishes to be associated with the notificationgeneration and authentication system 100

The user interface, such as user interface 400 b, may additionallyrequest that the user provide permission for the notification generationand authentication system 100 to track, monitor, or collect informationassociated with the consumer's spending and shopping via the user'sidentified bank accounts, credit card accounts, social media accounts,web browsers, and/or registered devices.

The system configuration module 112 may cause information collectedduring the system configuration process to be stored in the database 120and/or in a memory associated with the first user computing device 130a.

The user analysis module 113 may be used by the server 110 to collectand analyze data associated with the user for making determinationsabout customized notifications to generate for the user. Using theinformation provided during system configuration process, the useranalysis module 113 may access the bank accounts, credit card accounts,etc. provided by the user to collect data associated with, for example,purchase transactions made by the user using the bank or credit cardaccount. The user analysis module 113 may also collect information aboutpayments made by the user for purchases, credit card bills, etc. Theuser analysis module 113 may cause information associated with thepurchase transactions to be stored in the database 120 and/or in amemory associated with the first user computing device 130 a.

In some cases, to collect more detailed information about the purchasetransactions identified from the user's bank and/or credit cardaccounts, the user analysis module 113 may request and receivetransaction line item detail information from a merchant associated withthe purchase transaction. The user analysis module 113 may identify,from the purchase transaction information identified from the bankaccount or credit card account, a merchant and other identifyinginformation associated with the purchase transaction. The user analysismodule 113 may send to a computing device associated with the merchant,such as the merchant computing device 140, information identifying thetransaction (as obtained from the identifying information associatedwith the purchase transaction), such as a transaction number, a date andtime of the transaction, a location (e.g., city, state, zip code, etc.)of the merchant, a transaction amount, payment card information, or thelike. The user analysis module 113 may receive from the merchantcomputing device 140, line item data associated with the purchasetransaction. The line item data may include a name or description of theitem purchased, a price of the item, and/or a quantity of the itempurchased. The user analysis module 113 may cause the line item detailsof the purchase transactions to be stored in the database 120 and/or ina memory associated with the first user computing device 130 a.

In some cases, the user analysis module 113 may collect more detailedinformation about the purchase transactions identified from the user'sbank and/or credit card accounts, by providing the user with a userinterface to capture and/or upload an image of a receipt associated witha purchase transaction. The user analysis module 113 may process thereceipt using one or more image analysis and/or computer visiontechniques, such as optical character recognition (OCR), objectrecognition, or the like, to convert one or more portions of the imageof the receipt into text. After converting one or more portions of theimage of the receipt to text, the user analysis module 113 may analyzethe converted text to extract the line item purchase details from thetext.

In some cases, the user analysis module 113 may use a template toextract the line item purchase details from the converted text. Forinstance, the user analysis module 113 may query a database, such as thedatabase 120, to retrieve a template associated with a particularmerchant. The database 120 may store different templates for differentmerchants. The template may specify the receipt format that the merchantuses. In particular, the template may specify a format of each line itemfor the particular merchant receipt. For instance, a template for afirst merchant may specify that each line item on a receipt from thatmerchant begins with a product identifier, followed by a product name,which is followed by a product price. The user analysis module 113 mayuse the format specified by the template to extract the line itempurchase details from the converted text of the receipt and to parseeach of the line items to extract each line item element specified bythe template, e.g., the product identifier, the product name, theproduct price, and/or other product related information.

In some cases, the user analysis module 113 may use a machine learningmodel to detect a layout of the receipt and make predictions about thevarious elements of the receipt. For instance, the machine learningmodel may predict that a section of text appearing in the center of theconverted text in a tabular format likely corresponds to the line itempurchase details associated with the transaction. The machine learningmodel may determine that each row corresponds to an individual line itemand that each column corresponds to a particular element, such as aproduct identifier, a product name, and/or a product price. The useranalysis module 113 may employ natural language processing techniques toidentify the text that corresponds to each of the line items andelements. For instance, the user analysis module 113 may identify that acolumn containing all numbers is likely a product identifier, and acolumn containing text in a certain format, such as $xxx.xx is likely aproduct price, while a column containing all alphabetic characters islikely a product name. The user analysis module 113 may additional use alanguage model programmed with a library of product names to compareeach line item and element to the language model to determine theproduct name appearing in the line item. After identifying the line itempurchase details from the receipt, the user analysis module 113 maycause the line item purchase details to be stored in the database 120and/or in a memory associated with the first user computing device 130a.

Additionally or alternatively, using the information provided duringsystem configuration, the user analysis module 113, may monitor one ormore email accounts of the user to identify emails containing purchasereceipts or invoices. The user analysis module 113 may employ machinelearning models to identify such receipts and to analyze the receipts inthe manner described above to identify the line item purchase details.The user analysis module 113 may also monitor the email account toidentify, using the machine learning models, payment notifications,including late or missed payment notifications, or the like. The machinelearning models may scan the emails to identifying those using certainlanguage, from certain recipients, or in certain formats to identify thereceipts, invoices, and/or payment notifications. The user analysismodule 113 may cause the line item purchase details and/or the paymentinformation identified from the email to be stored in the database 120and/or in a memory associated with the first user computing device 130a.

Using the information provided during system configuration, the useranalysis module 113 may monitor one or more social media accounts of theuser to collect data such as posts, comments, or images that may beindicative of purchases made by the user, spending habits, hobbies,interests, etc. The user analysis module 113 may employ a machinelearning model to scan the user's images, posts, and/or comments forlanguage that may indicate that the user made a purchase or isinterested in a particular product. For instance, the user might post animage with a comment stating “Look what I just bought” or “Check outthese shoes.” The machine learning module may analyze the correspondingimage to identify the product or the type of product depicted in theimage. Alternatively or additionally, the user may post images withoutcomments and the machine learning model may identify a number and/orfrequency of postings of images of a certain type. For instance, themachine learning model may detect that the user posts many images ofcars or many images about travel by analyzing the posted images. Theuser analysis module 113 may additionally determine one or more socialmedia groups the user belongs to in order to identify the user'sinterests and hobbies.

The user analysis module 113 may additionally access one or more socialmedia accounts of the user's friends and/or acquaintances as providedduring the system configuration process. The user analysis module 113may perform a scan and analysis of the social media posts, comments,images, groups, etc. of the user's friends and acquaintances todetermine purchases, interests, hobbies, etc. of those individuals. Insome instances, the user analysis module 113 may collect combinedinformation associated with the purchases, interests, hobbies, etc. ofthe user's social media friends and acquaintances. In other instances,the user analysis module 113 may identify purchases, interests, hobbies,etc. that the group of social media friends and acquaintances have incommon and only collect such common information. The user analysismodule 113 may cause the collected information associated with thesocial media data to be stored in the database 120 and/or in a memoryassociated with the first user computing device 130 a.

The user analysis module 113 may additionally monitor, using thedownloaded browser extensions, the user's web browsing to collect dataassociated with the user's interests, hobbies, products of interests,purchased products, types of online stores the user visits, etc. Theuser analysis module 113 may cause the collected information associatedwith the user's web browsing to be stored in the database 120 and/or ina memory associated with the first user computing device 130 a.

The user analysis module 113 may collect additional or other dataassociated with the user and her spending, interests, or hobbies. Theadditional data may also be stored in the database 120 and/or in amemory associated with the first user computing device 130 a.

The user analysis module 113 may analyze, using a machine learningmodel, the collected data about the user's purchase history, webbrowsing, spending habits, payment habits, interests, hobbies, etc. toidentify spending patterns, payment patterns, whether the user pays ontime, whether the user pays partial or full amounts on credit cardbalances, types or categories of products that the user likes orprefers, average spending for various categories of products, particularmerchants preferred by the user, locations of merchants, averagedistances the user travels to purchase items, whether the user prefersto shop online or in a brick-and-mortar store, whether the user prefersto shop when items are on sale or when a discount is provided for theproduct, etc.

The user analysis module 113 may use a machine learning model or adecision engine to assess or calculate the user's product proclivity,spending proclivity, and credit risk based on the analysis of thecollected data. The user's product proclivity may be reflected as ascore ranging, for example, from 0 to 100, and may indicate alikelihood, based on the analysis of the collected data, that the userwould be inclined to purchase a particular product or category ofproduct. A score of 100, for example, may indicate a high proclivity forpurchasing the particular product or category of product, while a scoreof 0 might indicate a low proclivity for purchasing the product orcategory of product. The user's spending proclivity may be reflected asa score ranging, for example, from 0 to 100, and may indicate alikelihood, based on the analysis of the collected data, that the userwould be inclined to spend a particular amount on a particular productor category of product, if the user were to purchase the product orcategory of product. A score of 100, for example, may indicate a highproclivity for spending a particular amount on the particular product orcategory of product, while a score of 0 might indicate a low proclivityfor spending the particular amount on the product or category ofproduct. The user's credit risk may be reflected as a score ranging, forexample, from 0 to 100, and may indicate a credit risk or financialhealth associated with the user as determined from the analysis of thecollected information and from other and additional credit and financialsources that the notification generation and authentication system 100may access to receive information about the user, such as one or morethird party sources. The user analysis module 113 may, in some cases,use the machine learning model or decision engine to assess or calculateadditional scores, such as for assessing a likelihood that the user mayaccept an offer in a given store, at a given time, for a different pricelevel, etc. The user analysis module 113 may generate and store, in thedatabase 120 and/or in a memory associated with the first computingdevice 130 a, information associated with various calculated scores. Forinstance, the user analysis module 113 may store information such asshown in the below Table 1 related to the user's product proclivity,spending proclivity, and/or credit risk.

TABLE 1 Product Spending Spending Spending Product/ Procliv- Procliv-Procliv- Procliv- Credit Product ity ity - ity - ity - Risk CategoryScore $10-$500 $501-$1000 $1001-$5000 Score Clothing 60 80 40 20 87Electronics 10 50 0 0 Travel 80 100 100 90 Self-care 95 100 100 100Restaurants 82 95 0 0

The notification generation module 114 may use the various scorescalculated by the user analysis module 113 to generate a ranked list ofcustomized notifications for the user for particular products orcategories of products. For instance, the notification generation module114 may weight each of the scores to determine a product or service forwhich to generate the customized notification (e.g., a purchase offer),a type of customized notification (e.g., a type of offer) to generate,and a ranking of the generated notification. The notification may berelated to specific products or a category of products. The notificationmay be related to offers for use with particular merchants in some casesand in other cases might not be associated with a particular merchant.The notification may be offers such as discounts, rebates, micro-creditoffers (e.g., a reduced or promotional interest rate, no requiredminimum payments for a period of time, a credit limit increase, or thelike), or other incentives to purchase the product or service. In somecases, the notification (e.g., the offer) may expire after a period oftime. For example, using the scores shown in Table 1, the notificationgeneration module 114 may generate a ranked list of various types ofcustomized notifications, such as shown below in Table 2. The generatedranked list of customized notifications may be cached or stored in thedatabase 120 or in a memory associated with the first user computingdevice 130 a.

TABLE 2 Notification Identification No. Rank Product Notification 2476 1Brand A Buy one get one free of Brand A body lotion body lotion 2477 2Facial 10% off cost of facial at merchant of choice 2478 3 Toothpaste BYou like Toothpaste A, check out Toothpaste B - it's down the aisle andis cheaper than Toothpaste A today. 2479 4 Brand B Increase credit limitfor purchase exercise bike of Brand B exercise bike 2480 5 Cruise Line C$200 rebate on purchase of cruise cruise tickets ticket on Cruise Line C2481 6 Winter coat 20% off any winter coat at from Merchant Merchant A A2482 7 TV No interest for 12 months for purchase of any brand TV

The notification generation module 114 may additionally generate, foreach of the customized notification, a unique security key to beassociated with the offer included in the notification. The security keymay be used to ensure that only the user for whom the notification wasgenerated may accept and redeem the included offer. The security key maybe implemented as a hyperlink, a quick response (QR) code, a bar code,etc. and may be embedded with information identifying the offer or thenotification, such as the notification identification number. Thesecurity key may be used when presenting the offer to the user. Forinstance, the security key may be included in the notificationtransmitted to the user regarding the offer, and the user may be able toselect or scan, using a bar code or QR code reader application, thesecurity key to redeem the offer. Selection or scanning of the securitykey may cause execution of a script which may capture the identificationinformation associated with the security key so that the proper offermay be redeemed and so that the offer may only be redeemed by the properrecipient.

The notification selection module 115 may be used by the server 110 todetermine which notifications from the ranked list of customizednotifications generated by the notification generation module 114 topresent to the user. In some cases, only a subset of the generatedcustomized notifications may be selected to present to the user. In somecases, some notifications may be presented to the user at a first timeand other notifications may be presented to the user at a second time.The number of notifications to present and/or the time for presentingthe notifications may be determined based on user preference informationspecified during the system configuration process. In some cases, thenumber of notifications to present, the frequency of presentingnotifications, and/or the time for presenting the notifications may bedetermined based on an analysis by a machine learning model of how theuser has responded to notifications in the past. In some cases, thenotifications presented to the user may be based on a location of theuser. For instance, the notification selection module 115 may determinea location of the user based on a location of the first user computingdevice 130 a. The location of the first user computing device 130 a maybe determined by one or more sensors of the first computing device 130a, such as a global positioning system (GPS) device. In some instances,the location of the first user computing device 130 a may be determinedusing other methods, such as cellular or WI-FI triangulation. Thelocation of the first user computing device 130 a may be used todetermine one or more landmarks in proximity to the first user computingdevice 130 a. The landmarks may be merchants, vendors, stores, an aislein a store, etc. at which products or services are offered for sale. Thenotification selection module 115 may query a database, such as thedatabase 120, to determine landmarks and their corresponding locations.The notification selection module 115 may further determine or narrowdown the one or more landmarks based on determining that the first usercomputing device 130 a is located with a predetermined distance from thelandmark.

The predetermined distance may be based on user preference informationspecified during the system configuration process or may be based on ananalysis by a machine learning model of how far the user is likely totravel to make a purchase. In some cases, the predefined distance may bea distance such that the user is located inside the landmark, such asinside a merchant store or in the shopping complex housing a merchantstore, or in a particular aisle of a merchant store.

The notification selection module 115 may identify a website associatedwith each of the determined one or more landmarks within thepredetermined distance of the first user computing device 130 a. Thewebsite may be maintained by the merchant computing device 140 forexample. The notification selection module 115 may analyze the websiteto identify one or more products or services offered by that landmark.The notification selection module 115 may use web scraping techniques toobtain the products and services. For instance, the notificationselection module 115 may use one or more scripts configured to identifycertain words on the web page, such as “product” “item,” “purchase,”“sale,” or the like and extract corresponding information. In someinstances, the script may be configured to access links on the web pageto obtain the necessary information. The notification selection module115 may further use a machine learning model to identify the products orservices and corresponding information on the website. In some cases,the notification selection module 115 may request and receive productinformation from a computing device associated with the landmark, suchas the merchant computing device 140. The notification selection module115 may additionally retrieve information about a stock level of theproduct at the landmark. The notification selection module 115 maycompare the ranked list of customized notifications with the identifiedproducts and/or services offered at the landmarks within thepredetermined distance of the first user computing device 130 a toselect one or more notifications to present to the user. Accordingly,the selection of the one or more notifications may be made in real-timewhile the user is within the predetermined distance, such as while theuser is shopping at the landmark. In some cases, the real-time selectionof the one or more notifications may further be based on the currentstock level of the product at identified landmark. For instance, onlynotifications for products with a current stock level, at an identifiedlandmark, above a certain threshold may be selected.

In some cases, a determination about the location of the user and adetermination about locations of the landmarks (and their associatedwebsites) in proximity to the user may be made prior to the analysis ofthe collected data and the generation of the ranked list of customizednotifications. In this case, the ranked list of customized notificationsmay be generated based on the location of the user and the user'spredetermined distance from the one or more landmarks, such that thenotifications may be generated in real-time while the user is withinproximity to the one or more landmarks, such as while the user isshopping at the landmark. For instance, the user analysis module 113 mayanalyze collected data about the user's purchase history, web browsing,spending habits, hobbies, interests, etc. and the notificationgeneration module 114 may generate the customized notifications afterdetecting that the user is shopping at a particular landmark. Thenotification generation module 114 may identify products offered at theparticular landmark that may be of interest to the user based on theuser analysis. The notification generation module 114 may generate thenotifications in real-time and the notification selection module 115 maydetermine which notifications to present to the user based on, a stocklevel of a product at the landmark, a ranking of the generatednotification, user preference information, seasonal considerations, ananalysis by a machine learning model regarding which notificationsshould be presented, which notifications the user would likely beresponsive to, or the like. In some cases analysis of the collected dataand/or generation of the customized notifications may occur both beforeand after the location of the user is determined.

The notification selection module 115 may output one or morenotifications via the banking application 111, such as shown in a userinterfaces 400 c and/or 400 d in FIGS. 4C and 4D, while the user iswithin the predefined distance of the one or more landmark. Forinstance, the notification selection module 115 may output the one ormore notifications while the user is shopping at a merchant store. Insome cases, the notifications may additionally or alternatively betransmitted to one or more of the user computing devices 130 as a textmessage. In some cases the notifications may additionally oralternatively be emailed to the user.

The notification may include information about one or more offers, anadvertisement, a warning, a recommendation, information about theavailability of a product in proximity to the user, etc. For instance,the notification may include a targeted advertisement or informationabout product that the user may be in proximity to and that may be ofinterest to the user. In some cases, the notification may identify aproduct or service and details about an offer, such as shown in userinterface 400 c. The notification may additionally or alternativelyinclude the unique security key generated for the offer, which may beselected or scanned by the user to indicate that the user wishes toaccept and redeem the offer to purchase the corresponding product orservice, such as shown in user interfaces 400 c and 400 d. If the userdoes not select or scan the security key within a predefined period oftime, the offer may expire. In some cases, before to predefined periodof time, the notification selection module 115 may output a remindernotification via the banking application 111, or may transmit a remindernotification to one or more of the user computing devices 130, remindingthe user of the offer. After the predefined time, the notificationselection module 115 may further output a notification, via the bankingapplication 111 or may transmit a reminder notification to one or moreof the user computing devices 130, notifying that the offer has beencanceled. In this case, the notification selection module 115 may causethe offer to be invalidated so that it might not be redeemable after thepredefined period of time.

The authentication module 116 may be used by the server 110 toauthenticate redemption of an offer included in a customizednotification. The authentication module 116 may be used to confirm thatan offer is redeemed only by the user for whom the notification wasgenerated. When the security key included in the notification of anoffer is selected or scanned, the authentication module 116 may executea script that may cause identification information of the notification,such as the notification identification number, and identificationinformation, such as a MAC address or a telephone number or the like, ofthe device from which the offer (e.g., the security key) was selected orscanned to be transmitted to the server 110. The authentication module116 may query the database 120 using the identification information ofthe notification to identify the user for whom the notification wasgenerated. The authentication module 116 may further query the database120 to determine stored identification information associated with oneor more devices registered by the user to be used with the notificationgeneration and authentication system 100. For instance, during thesystem configuration process the user may have registered the first usercomputing device 103 a, the second user computing device 130 b, and thethird user computing device 130 c for use with the notificationgeneration and authentication system 100. The authentication module 116may compare the stored identification information associated with theuser's registered devices with the received identification informationof the device from which the offer was selected or scanned. If thereceived identification information of the device from which the offerwas selected or scanned matches identification information for one ofthe user's registered devices, the redemption of the offer may beauthenticated. In some instances, the authentication module 116 mayrequire additional or different forms of authentication. For instance,the authentication module 116 may require a password to be entered, afingerprint scan, facial scan, an iris scan, or the like.

In some instances, upon selection or scanning of the of the securitykey, the script executed by the authentication module 116 mayadditionally cause one or more operating parameters of the device fromwhich the security key was selected or scanned to be transmitted to theserver 110. The authentication module 116 may analyze the one or moreoperating parameters to determine a likelihood that the GPS location ofthe device is being spoofed. For instance, the authentication module 116may analyze the one or more operating parameters to determine whethercertain applications known to perform location spoofing are operating onthe device. The operating parameters may additionally or alternativelyinclude an IP address associated with the device and the authenticationmodule 116 may compare a location associated with the IP address withthe GPS location of the device. The authentication module 116 mayadditionally compare the IP address with known virtual private network(VPN) IP addresses. If the authentication module 116 determines that itis likely that the GPS location is being spoofed, the authenticationmodule 116 may transmit a notification to the device indicating thatcertain applications or VPN services on the device must be disabledprior to attempting to redeem the offer. After disabling the certainapplications or VPN services, the user may be provided an opportunity toattempt to redeem the offer one or more times. After a threshold amountof attempts, if the authentication module 116 determines that it remainslikely that the GPS location of the device is being spoofed, theauthentication module 116 may determine that authentication isunsuccessful.

If authentication is unsuccessful, the authentication module 116 maytransmit a notification, via the banking application 111, notifying theuser that authentication was unsuccessful and that the offer might notbe redeemed.

If authentication is successful, the authentication module 116 mayoutput a notification, via the banking application 111, notifying theuser that authentication was successful and that the user may purchasethe product or service and that upon proof of purchase, the offer willbe applied to an account associated with the user. In some cases, theauthentication module 116 may output a user interface providinginformation on landmarks or merchants where the offer may be redeemed.For instance, the authentication module 116 may output a user interfacevia the banking application 111 displaying a list of landmarks andcorresponding locations or a map displaying locations of the landmarksor merchants, such as shown in user interface 400 e in FIG. 4F. The usermay select one of the displayed landmarks or merchants, and theauthentication module 116 may provide route guidance from the currentlocation of user, such as the location of the first user computingdevice 130 a, to the selected landmark/merchant.

The authentication module 116 may further provide instructions forproviding proof of purchase. For instance, the user may be instructed toupload an image of a purchase receipt, via a user interface of thebanking application 111, such as user interface 400 g in FIG. 4F,showing that the product or service associated with the redeemed offerwas actually purchased. A user interface may be provided via the bankingapplication 111 for uploading the purchase receipt and the receipt maybe analyzed using one or more of the techniques previously described toconvert the image to text and to analyze the receipt text to determinethe purchase details included therein. Upon successfully determiningthat the purchase details provided on the receipt correspond to theproduct or service associated with the redeemed offer, for example,whether the product was purchased after redemption of the offer, proofof purchase may be confirmed.

In some cases, the authentication module 116 may instruct the user toscan a bar code, QR code, or the like located on a packaging or a tagattached to the product when the user is at home. The user may beprovided with a threshold amount of time by which the product must bescanned. The banking application 111 may provide a user interface forperforming the scan, such as user interface 400 g. Upon scanning the barcode or QR code associated with the product, the authentication module116 may receive the identification information associated with the barcode/QR code and compare the received identification information withidentification information for the product associated with the redeemedoffer. The authentication module 116 may additionally capture the GPSlocation of the device that performed the scan at the time of thescanning to ensure that the user is not still located at the merchantstore where the item was to be purchased. The authentication module 116may also compare a time of redemption of the offer with a time of thescanning of the packaging or tag of the product. The authenticationmodule 116 may additionally make another determination, based onreceiving one or more operating parameters of the device, of whether aGPS location of the device is likely spoofed. If the authenticationmodule 116 determines that the location of the device is likely spoofed,the proof of purchase might not be accepted and the authenticationmodule 116 may determine that authentication is unsuccessful.

The offer processing module 117 may be used by the server 110 to processa successfully redeemed offer. For instance, after determining that theoffer was redeemed by a registered device, that the GPS location of thedevice from which the offer was redeemed was likely not spoofed, and/orafter proof of purchase is received and accepted, the offer processingmodule 117 may apply the offer to an account, such as a bank account ora credit card account associated with the user. Applying the offer tothe user's account may mean that the user's account may be credited witha monetary amount associated with the value of the offer or that creditterms associated with the user's account may be adjusted or the like.For instance, if the user redeemed the 10% off of a facial offer and theuser paid $100 for the facial, the offer processing module 117 may applya $10 credit to the user's bank account. The credit may be applied afterthe proof of purchase is received at the server 110. In another example,if the user redeemed the no interest for 12 months for purchase of anybrand of TV, upon proof of purchase of the TV, the offer may be appliedto the user's credit card account such that no interest will accrue forthe cost of the TV for 12 months from the date of purchase. The offerprocessing module 117 may further output a notification, via the bankingapplication 111, or transmit a notification to the one or more usercomputing devices 130, notifying the user that the offer wassuccessfully processed. After the offer is successfully redeemed orprocessed, the offer processing module 117 may invalidate the offer sothat the offer might not be used again.

The machine learning training module 118 may be used by the server 110to train one or more machine learning models and/or algorithms used forgenerating the customized notifications. The server 110 may use variousmachine learning models and/or algorithms, such as, but not limited to,supervised learning algorithms, unsupervised learning algorithms,regression algorithms (e.g., linear regression, logistic regression,etc.), instance based algorithms (e.g., learning vector quantization,locally weighted learning, etc.), regularization algorithms (e.g., ridgeregression, least-angle regression, etc.), decision tree algorithms,Bayesian algorithms, clustering algorithms, artificial neural networkalgorithms, classification algorithms, ranking algorithms, etc.

The machine learning models may be trained using one or more trainingdatasets generated by the machine learning training module 118. Thetraining datasets may include labeled data. For example, the machinelearning training module 118 may generate a dataset in which informationabout a notification presented to a user is labeled with whether or notthe user was responsive to the notification. The machine learningtraining module 118 may input the training dataset into the machinelearning model to train the model to make predications related towhether a user may be responsive to a notification.

For instance, if the user receives notification of an offer and decidesto redeem the offer, after the offer has been successfully processed bythe offer processing module 117, the machine learning training module118 may generate a training dataset that includes information and/orconditions associated with the redeemed offer and that is labeled as‘redeemed.’ The information and/or conditions associated with theredeemed offer that may be included in the training dataset may comprisethe product/service associated with the offer, the landmark or merchantfrom whom the product/service was purchased, a date and time oftransmission of the notification of the offer, a date and time ofselection or scanning of the security key provided in the offer, a dateand time of the purchase transaction associated with the offer, a valueassociated with the offer, a type of the offer, a price of theproduct/service at the time of purchase, a distance between the locationof the first user computing device 130 a and the location of thelandmark or merchant from whom the product/service was purchased whennotification of the offer was generated, a distance between the locationof the first user computing device 130 a and the location of thelandmark or merchant when the selection or scanning of the security keywas received, a number of notifications presented to the user since anyprior offer redeemed by the user, the weather at a location of the ofthe first user computing device 130 a when the notification wastransmitted, and/or the like.

Additionally, in the case where the user receives notification of anoffer and decides not to redeem the offer, the machine learning trainingmodule 118 may generate a training dataset that includes informationand/or conditions associated with the unredeemed and that is labeled as‘not redeemed.’ The machine learning training module 118 may determinethat the user decides not to redeem the offer if the selection orscanning of the security key is not received within a predefined periodof time. The information and/or conditions associated with theunredeemed offer that may be included in the training dataset maycomprise the product/service associated with the offer, the landmark ormerchant offering the product/service associated with the offer forsale, a date and time of transmission of the notification of the offer,a value associated with the offer, a type of the offer, a price of theproduct/service associated with the offer at the time of notification ofthe offer, a distance between the location of the first user computingdevice 130 a and the location of the landmark or merchant offering theproduct/service associated with the offer for sale, a number ofnotifications presented to the user since any prior offer redeemed bythe user, the weather at a location of the of the first user computingdevice 130 a when the notification was transmitted, and/or the like.

In some cases, the notification might not be for an offer, and mayinstead be a recommendation, a warning, an advertisement, or the likeand the user may only be expected to read or otherwise engage with thenotification without having an offer to redeem. In this case, thecorresponding generated training dataset may be labeled ‘responsive’ or‘not responsive,’ rather than ‘redeemed’ or ‘not redeemed,’ based onwhether the user has read or otherwise engaged with the notification.

The machine learning training module 118 may input the training datasetinto the machine learning model to train the model to make predicationsrelated to whether a notification of an offer is likely to be redeemedor responded to by the user.

The machine learning models may utilize the training datasets toidentify patterns, sequences, and/or relationships in the training datasets, so as to train the models to make predictions about potential newnotifications to be presented to the user based on information andconditions associated with those potential new notifications. In thisway, the machine learning models may be trained and be able to makepredictions about the types of notifications that the user is likely toredeem or respond to. The machine learning models may receive as input,information and conditions associated with potential new notifications,and may output tags indicating whether each of the potential newnotifications are likely to be redeemed and/or responded to. Forinstance, during the process of generating a new notification by thenotification generation module 114, the notification generation module114 may input an unlabeled dataset into the machine learning modelcomprising information and/or conditions associated with the potentialnew notification. The information and/or conditions may comprise, forexample, a product/service to be associated with the offer, a landmarkor merchant offering the product/service for sale, a current date andtime, a value associated with the offer, a type of the offer, a price ofthe product/service associated with the offer, a current distancebetween the location of the first user computing device 130 a and thelocation of the landmark or merchant offering the product/service forsale, a number of notifications presented to the user since any prioroffer redeemed by the user, the current weather at a location of the ofthe first user computing device 130 a, and/or the like. The machinelearning model may receive the information and/or conditions associatedwith the potential new notification and may output a prediction ofwhether the potential new notification is likely to be redeemed orresponded to by the user. In some instances, the machine learning modelmay further output a confidence score or level associated with theprediction, which may indicate a degree of confidence in thepredication. The confidence score may be a numeric value or may be anindication such as high, medium, low, etc. or may be represented in adifferent way. The notification generation module 114 may determinewhether or not to generate the new notification based on the predictionand/or the confidence score output by the machine learning model.

The machine learning training module 118 may generate additionaltraining datasets for use in training the machine learning models. Forexample, the machine learning training module 118 may generate atraining dataset comprising labeled images for input into the machinelearning model to train the model to recognize, in the images, certainobjects that may be useful in determining a user's interest and/orhobbies. For instance the training dataset may include images labeled as‘shoes,’ ‘boat,’ ‘car,’ ‘dog,’ ‘purse,’ etc. The training dataset,comprising the labeled images and provided as input to the machinelearning model, may be used by the model to analyze other unlabeledimages input into the model in order to identify objects or products inthose images, and the model may output the identified objects/productsassociated with the unlabeled images.

For instance, the machine learning model may receive as input, socialmedia posted images associated with the user, and may output a tagindicating one or more objects identified in the social media postedimage. The output may additionally include a confidence score or levelassociated with the identification of the object, which may indicate adegree of confidence that the object was accurately identified. Themachine learning training module 118 may use this output, e.g., theidentified object and/or the confidence score, along with otherinformation, such as the frequency and/or number of images of theidentified object being posted by the user to determine whether theidentified object represents an interest of the user. For example, ifthe user posts images determined by the machine learning model toinclude ‘shoes’ more than a threshold number of times and/or at a rateof frequency greater than a threshold frequency, the machine learningtraining module 118 may determine shoes are of particular interest tothe user.

The machine learning training module 118 may generate other trainingdatasets to input to the machine learning models to train the models tomake other predictions or to recognize other data for use in generatingthe customized notifications. For example, the machine learning modelsmay be trained with a training dataset of labeled purchasereceipt/invoice images and/or receipt/invoice layouts to train the modelto recognize and extract various elements of an unlabeled purchasereceipt/invoice input into the model, such as line item purchasedetails. The machine learning models may additionally be trained with atraining dataset of labeled social media data to train the model torecognize language that may be indicative of purchases made, spendinghabits, hobbies, and/or interests of a user. The machine learning modelsmay additionally be trained with a training dataset of labeled purchasehistory data to train the model to recognize or make predictions aboutvarious items, such as spending patterns, payment patterns, whether theuser pays bills in a timely manner, types or categories of products thatthe user prefers, average spending amounts for various categories ofproducts, merchants preferred by the user, a maximum distance the useris willing to travel to purchase items, whether the user prefers to shoponline or in brick-and-mortar stores. The machine learning models mayadditionally be trained with one or more training datasets used to trainthe models to make predictions related to whether the user prefers toshop when items are on sale or when a discount is provided for theproduct, an optimal number of notifications to present to the user, anoptimal frequency of presenting notification to the user, an optimaltime for presenting the notifications to the user, and/or the like. Themachine learning models may additionally be trained with trainingdatasets of merchant websites to train the models to analyze merchantwebsites to recognize products or services offered for sale andcorresponding information about the products or services.

The database 120 may store information used by the server 110, thebanking application 111, the system configuration module 112, the useranalysis module 113, the notification generation module 114, thenotification selection module 115, the authentication module 116, theoffer processing module 117, and/or the machine learning training module118. The database 120 may comprise one or more of a relational database,a hierarchical database, a distributed database, an in-memory database,a flat file database, an XML database, a NoSQL database, a graphdatabase, or the like.

The one or more user computing devices 130, e.g., first user computingdevice 130 a and/or the second user computing device 130 b, may beconfigured to communicate with and/or connect to one or more computingdevices of the computing environment 100 via the public network 160. Insome instances, the one or more user computing devices 130 may haveinstalled thereon one or more applications for performing one or moreaspects described herein. For instance, the first user computing device130 a and/or the second user computing device 130 b may store anapplication, such as the banking application 111, for accessing a bankaccount, credit card account, commercial account, line of credit, or thelike, or may store a web browsing extension used to track web browsing.In some instances, the one or more user computing devices 130 may accessone or more applications installed on the server 110 for performing oneor more aspects described herein. For instance, the third user computingdevice 130 b, may access, using a website, and via the public network160, the banking application 111 installed at the server 110.

The one or more user computing devices 130 may be any type of computingdevice or combination of devices capable of performing the particularfunctions disclosed herein. For example, the one or more user computingdevices 130 may be and/or include server computers, desktop computers,laptop computers, tablet computers, smart phones, fitness devices, orthe like that may include one or more processors, memories,communication interfaces, storage devices, and/or other components. Theone or more user computing devices 130, in some instances, may be orinclude special-purpose computing devices configured to perform thefunctions disclosed herein. In some instances, some or all of thefunctionality of the server 110 may instead be performed by any of theone or more user computing devices 130 alone or in combination with theserver 110.

The one or more user computing devices 130 may have integrated thereinan image capturing device for capturing an image or scanning a code,such as a bar code or a QR code. For instance, the image capturingdevice may be one of one or more sensors of the one or more usercomputing devices 130, and one or more applications installed on the oneor more user computing devices 130 may cause the image capturing deviceto be activated and to capture an image or scan a code. The capturedimage may be stored on the one or more user computing devices 130 and/oron a different device. In some cases, the image capturing device may beused to capture one or more images of a receipt for use in extractingline item data for a corresponding transaction. In some cases, the imagecapturing device may be used to scan a barcode, QR code, or the likeassociated with a generated notification, such as provided via asecurity key, or associated with a purchased product, such as providedon a tag or packaging of the purchased product. In some cases, the oneor more user computing devices 130 may use an image capturing devicethat is separately embodied from the one or more user computing devices130. When separately embodied, the image capturing device may, in somecases, be communicatively connected to the one or more user computingdevices 130 and may be controlled by the one or more user computingdevices 130. In some instances, the image capturing device, might not beconnected to the one or more user computing devices 130. In someinstances, the image capturing device may be communicatively connectedto the public network 160 and may be configured to transmit images tothe one or more user computing devices 130, the server 110, and/or toother devices via the public network 160.

The merchant computing device 140 may comprise a computing deviceassociated with a merchant or landmark external to the organization orbusiness, e.g., as a financial institution, that operates the privatenetwork 170. The merchant computing device 140 may be used by themerchant when a user makes a purchase using a credit or other paymentcard. When the user's card is swiped by the merchant during the purchasetransaction, the merchant computing device 150 may receive approval forthe purchase transaction from a payment processor system associated withthe payment card. The merchant computing device 150 may maintain certaininformation associated with the purchase transaction, such as atransaction identifier, a purchase date and time, a purchase amount,and/or a payment card information. In some instances, more detailedinformation about the purchase may be maintained by the merchant, suchas the individual items that were purchased during transaction. Forinstance, the merchant computing device 140 may store information foreach purchased item in a transaction, such as an item identifier and/orname, a quantity of the item purchased, and/or an item purchase price.In some instances, the merchant computing device 140 may provide suchinformation to a computing device associated with the financialinstitution issuing the payment card. For instance, the merchantcomputing device 140 may communicate, via the public network 160, withthe private network 170, and the server 110 and may send transactioninformation to the server 110 automatically after each purchasetransaction or upon request by the server 110. The merchant computingdevice 140 may also maintain product and/or service information relatedto products and/or services offered for sale by the merchant and, uponrequest, may send product information to the sever 110. The productinformation may include a product name, description, price, a stocklevel, or the like of particular products/services offered by themerchant. The merchant computing device 140 may additionally maintain awebsite used by the general public for online shopping. The website mayadditionally include information about the various products and/orservices offered by the merchant.

The public network 160 may connect the private network 170, and/or theone or more computing devices connected thereto, to one or morenetworks, systems, and/or computing devices that might not be associatedwith the organization, such as the one or more user computing devices130 and the merchant computing device 150. The public network 160 mayinclude one or more networks, such as the Internet.

The private network 170 may be a network operated by, and internal to,an organization or business, such as a banking institution. The privatenetwork 170 may be used to interconnect one or more computing devicesinternal to the organization or business. The private network 170 mayfurther connect to the public network 160. The private network 170 mayinclude one or more of local area networks (LANs), wide area networks(WANs), virtual private networks (VPNs), or the like.

Referring to FIG. 2 , an example computing device 200 is provided. Theexample computing device 200 may include or incorporate any one of theserver 110, the database 120, the one or more user computing devices130, or the merchant computing device 140. In some instances, thecomputing device 200 may represent, be incorporated in, and/or includevarious devices such as a desktop computer, a computer server, a mobiledevice, such as a laptop computer, a tablet computer, a smart phone, orany other types of mobile computing devices, and/or any other type ofdata processing device.

The computing device 200 may include one or more components, such as oneor more processors 203, a random access memory (RAM) 205, a read-onlymemory (ROM) 207, an input/output (I/O) device 209, a communicationinterface 211, one or more sensor devices 213, and a memory 215. Thecomputing device 200 may include one or more additional or differentcomponents.

The one or more processors 203 may be configured to control overalloperation of the computing device 200 and its associated components. Adata bus (not shown) may interconnect the one or more processors 203,the RAM 205, the ROM 207, the memory 215, the I/O device 209, thecommunication interface 211, and/or the one or more sensor devices 211.The one or more processors 203 may include a single central processingunit (CPU), which may be a single-core or multi-core processor, or mayinclude multiple CPUs. The one or more processors 203 and associatedcomponents may control the computing device 200 to execute a series ofcomputer-readable instructions to perform some or all of the processesdisclosed herein. Although not shown in FIG. 2 , various elements withinthe memory 215 or other components in the computing device 200, mayinclude one or more caches, for example, CPU caches used by the one ormore processors 203, page caches used by operating system 217, diskcaches of a hard drive, and/or database caches used to cache contentfrom database 221. For embodiments including a CPU cache, the CPU cachemay be used by the one or more processors 203 to reduce memory latencyand access time. The one or more processors 203 may retrieve data fromor write data to the CPU cache rather than reading/writing to the memory215, which may improve the speed of these operations. In some examples,a database cache may be created in which certain data from the database221 may be cached in a separate smaller database in a memory separatefrom the database 221, such as in the RAM 205 or on a separate computingdevice. For instance, in a multi-tiered application, a database cache onan application server may reduce data retrieval and data manipulationtime by not needing to communicate over a network with a back-enddatabase server. These types of caches and others may be included invarious embodiments, and may provide potential advantages in certainimplementations of devices, systems, and methods described herein, suchas faster response times and less dependence on network conditions whentransmitting and receiving data.

The I/O device 209 may include, but need not be limited to, amicrophone, keypad, touch screen, and/or stylus, through which a user ofthe computing device 200 may provide input, and may also include one ormore of a speaker for providing audio output, and a video display devicefor providing textual, audiovisual, and/or graphical output.

The communication interface 211 may include one or more transceivers,digital signal processors, and/or additional circuitry and software forcommunicating via a network (e.g., the public network 160, the privatenetwork 170, or the like), wired or wireless, using any protocol asdescribed herein.

The one or more sensor devices 213 may include one or more of anaccelerometer, a gyroscope, a GPS device, a biometric sensor, aproximity sensor, image capturing device, a magnetometer, etc.

The memory 215 may store software to provide instructions to the one ormore processors 203 allowing the computing device 200 to perform variousactions. For example, the memory 215 may store software used by thecomputing device 200, such as the operating system 217, applications219, and/or the database 221. The various hardware memory units in thememory 215 may include volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information, such as computer-readable instructions, data structures,program modules, or other data. The memory 215 may include one or morephysical persistent memory devices and/or one or more non-persistentmemory devices. The memory 215 may include, but need not be limited to,the RAM 205, the ROM 207, electronically erasable programmable read onlymemory (EEPROM), flash memory, or other memory technology, optical diskstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium that may be used tostore the desired information and that may be accessed by the one ormore processors 203.

Although various components of the computing device 200 are describedseparately, functionality of the various components may be combinedand/or performed by a single component and/or multiple computing devicesin communication without departing from the disclosure.

FIG. 3A discloses an example method of an offer generation process inthe notification generation and authentication system 100, in accordancewith one or more aspects described herein. The example methods aredescribed as being performed by the server 110, however the examplemethods may be performed by any one of the server 110, the one or moreuser computing devices 130, the computing device 200, and/or acombination thereof. FIGS. 4A-4F are example user interfaces of abanking application, such as banking application 111, used by theexample methods.

Referring to FIG. 3A, at step 302, the server 110 may receive a requestto download an application and perform a system configuration inassociation with the notification generation and authentication system100. For instance, the server 110 may receive a request from the firstuser computing device 130 a to download the banking application 111and/or a web browser extension.

The server 110 may utilize the system configuration module 112 todownload the banking application 111 and/or the web browser extension tothe first user computing device 130 a. Once downloaded, the user may beprompted via one or more user interfaces, such as user interfaces 400 aand 400 b shown in FIGS. 4A and 4B, to configure the system by providinginformation identifying: one or more bank accounts, credit cardaccounts, or the like that should be used with the notificationgeneration and authentication system 100 to collect the user's purchasehistory and monitor the user's spending and payment habits; social mediaaccounts that may be monitored to collect data associated with theuser's spending habits, hobbies, and/or interests; one or more emailaccounts associated with the consumer to be scanned or monitored forpurchase receipts or invoices; social media accounts of friends toparticipate in a network of friends associated with the notificationgeneration and authentication system 100; user preferences, such aspreferred merchants, spending limits, a maximum distance willing totravel to purchase a product or service, hobbies, interests, demographicinformation (i.e., an age range, number and ages of children, householdincome range, etc.), a time for presenting notifications, a maximumnumber of notifications to present at a time, types of notificationsthat should not be presented to the user, etc.; and/or one or moredevices to register for use with the notification generation andauthentication system 100. The system configuration information may bestored in the database 120 and/or in a memory associated with the firstuser computing device 130 a.

After the system has been configured, at step 304, the server 110 mayutilize the user analysis module 113 to perform data collection. Theuser analysis module 113 may collect data for making determinationsabout customized notifications to generate for the user. The useranalysis module 113, may use the information provided during systemconfiguration, to access and monitor the user's bank accounts, creditcard accounts, social media accounts, email accounts, and/or webbrowsing to collect data associated with the user's purchase history,spending habits, payment habits, hobbies, interests, etc. In some cases,additional data may be collected by the user analysis module 113, suchas from the user, via a purchase receipt uploaded by the user, so thatline item purchase details may be extracted from the purchase receipt.In some cases, the additional data, such as line item purchase details,may be received from a merchant, such as the merchant computing device140. In some cases, the user analysis module 113 may monitor and collectdata from the user's identified friends. The user analysis module 113may collect combined information associated with the purchases, spendinghabits, interests, and/or hobbies of the user's friends. In otherinstances, the user analysis module 113 may identify purchases, spendinghabits, interests, and/or hobbies that the group of friends andacquaintances have in common and only collect such common information.The user analysis module 113 may cause the collected information to bestored in the database 120 and/or in a memory associated with the firstuser computing device 130 a.

At step 306, the user analysis module 113 may analyze, using a machinelearning model, all or some of the collected data to identify spendingpatterns, payment patterns, whether the user pays on time, whether theuser pays partial or full amounts on credit card balances, types orcategories of products that the user likes or prefers, average spendingfor various categories of products, particular merchants preferred bythe user, locations of merchants, a distance the user is willing totravel to purchase items, whether the user prefers to shop online or ina brick-and-mortar store, whether the user prefers to shop when itemsare on sale or when a discount is provided for the product, etc.

At step 308, the server 110 may utilize the user analysis module 113 tocalculate the user's product proclivity, spending proclivity, and/orcredit risk. The user analysis module 113 may use a machine learningmodel or a decision engine to calculate the user's product proclivity,spending proclivity, and credit risk based on the analysis of thecollected data.

The user's product proclivity may indicate a likelihood that the userwould be inclined to purchase a particular product or category ofproduct. The user's spending proclivity may indicate a likelihood thatthe user would be inclined to spend a particular amount on a particularproduct or category of product, if the user were to purchase the productor category of product. The user's credit risk may indicate a creditrisk or financial health associated with the user.

The machine learning model or decision engine may calculate the user'sproduct proclivity, spending proclivity, and/or credit risk based on thedata collected at step 304 that indicates, based on the user's purchasehistory, browsing history, hobbies, interests, financial health,credit-worthiness, or the like, the user's proclivity to purchase orspend particular amounts on particular products, categories of products,or the like and the potential credit risk associated with the user.

The user analysis module 113 may calculate a score, for example rangingfrom 0 to 100, for each of the user's product proclivity and spendingproclivity as it relates to a particular product/service or category ofproducts/services. The user analysis module 113 may additionallycalculate a score, for example ranging from 10 to 100, for the user'scredit risk. The user analysis module 113 may cause the calculatedscores to be stored in the database 120 and/or in a memory associatedwith the first user computing device 130 a.

At step 310, the server 110 may utilize the notification generationmodule 114 to generate one or more customized purchase notifications.The notification generation module 114 may use the various scorescalculated by the user analysis module 113 to generate a ranked list ofcustomized notifications related to particular products or categories ofproducts for the user. The notifications may be related to specificproducts or for a category of products. The notifications may be relatedto particular merchants in some cases and in other cases might not berelated to a particular merchant. The notifications may be related tooffers, such as discounts, rebates, micro-credit offers (e.g., a reducedor promotional interest rate, no required minimum payments for a periodof time, a credit limit increase, or the like), or other incentives topurchase a product or service. The notification generation module 114may generate, for each of the customized notifications, a uniquesecurity key to be associated with the offer. The security key may beused to ensure that only the user for whom the notifications wasgenerated may accept and redeem the included offer. The security key maybe implemented as a hyperlink, a quick response (QR) code, a bar code,etc. and may be embedded with information identifying the notificationor offer, such as a notification identification number.

At step 312, the server 110 may utilize the notification selectionmodule 115 to determine a location of the user. The notificationselection module 115 may determine a location of the user based on alocation of the first user computing device 130 a. The location may bedetermined using, for example, a GPS device associated with the firstuser computing device 130 a.

At step 314, the server 110 may utilize the notification selectionmodule 115 to determine one or more landmarks in proximity to the userbased on the location of the first user computing device 130 a. Thelandmarks may be merchants, vendors, stores, an aisle in a store, etc.that offer products or services for sale. The notification selectionmodule 115 may further determine or narrow down the one or morelandmarks based on determining that the first user computing device 130a is located with a predetermined distance from the landmark. In somecases, the predetermined distance may mean that the user computingdevice 130 a is located inside of the landmark, such as inside of amerchant store, in an aisle of the merchant store, etc.

At step 316, the server 110 may utilize the notification selectionmodule 115 to identify and analyze a website associated with one or moreof the landmarks. The notification selection module 115 may identify awebsite associated with each of the determined one or more landmarkswithin the predetermined distance of the first user computing device 130a. The notification selection module 115 may analyze the website toidentify one or more products or services offered by that landmark. Insome instances, the server 110 may send a request, to a computing deviceassociated with one or more of the landmarks, for a listing of the oneor more products or services offered by that landmark, and the server110 may receive, from corresponding computing device, the listing of theone or more products or services offered by that landmark.

In some cases, steps 306, 308, and 310 may additionally or alternativelybe performed after step 316. That is, in some cases, a determinationabout the location of the user (step 312) and a determination aboutlocations and associated websites of the landmarks in proximity to theuser (steps 314 and 316) may be made prior to analyzing the collecteddata (step 306), calculating the user's product/spending proclivity andcredit risk (step 308), and generating the ranked list of customizedoffers (step 310). In this case, the ranked list of customizednotifications may be generated based on the location of the user, suchthat the notifications might not only be selected in real-time while theuser is within proximity to the one or more landmarks, such as while theuser is shopping at the landmark, but may also be generated in real-timewhile the user is within proximity to the one or more landmarks. And thenotifications may be generated for any products or services determinedto be offered for sale at the landmark and determined to likely be ofinterest to the user.

At step 318, the server 110 may utilize the notification selectionmodule 115 to select one or more customized notifications to present tothe user. The notification selection module 115 may compare the rankedlist of customized notifications with the identified products and/orservices offered at the landmarks within the predefined distance of thefirst user computing device 130 a to select one or more notifications topresent to the user. In some cases, the selection of the notificationmay be based on user preferences configured by the user during thesystem configuration process, or may be based on determinations made bya machine learning model.

At step 320, the server 110 may utilize the notification selectionmodule 115 to output the selected one or more customized notifications.The notification selection module 115 may output the one or morenotifications via the banking application 111, such as shown in userinterfaces 400 c and/or 400 d in FIGS. 4C and 4D, while the user iswithin the predefined distance of the one or more landmark. Forinstance, the notification selection module 115 may output the one ormore notifications while the user is shopping at a merchant store or islocated in a particular aisle at the merchant store. The notificationmay include an advertisement, a warning, information about a product orservice, information about one or more offers, or the like. Forinstance, the notification may identify a product or service and detailsabout an offer. The notification may additionally or alternativelyinclude a unique security key generated for the offer.

At step 322, the server 110 may utilize the notification selectionmodule 115 to determine whether a request to redeem the offer isreceived. The user may request to redeem the offer by selecting orscanning, such as with an image capturing device, the security key thatis provided in the notification. The notification selection module 115may determine whether an indication that the security key was selectedor scanned is received by the server 110.

If notification selection module 115 determines that an indication thatthe security key was selected or scanned within a predefined period oftime is received, the notification selection module 115 may proceed tostep 324. If the notification selection module 115 determines that thesecurity key was not selected within a predefined period of time, theoffer may be invalidated and the notification selection module 115 mayproceed to step 332.

At step 324, the server 110 may utilize the authentication module 116 toperform an authentication and fraud detection process to authenticateredemption of the offer. That is, the authentication module 116 mayperform a process to ensure that the user for whom the offer wasgenerated is the individual redeeming the offer and is legitimatelyredeeming the offer. A process for performing authentication and frauddetection of the offer redemption is provided and described below withrespect to FIG. 3B.

At step 326, if the authentication module 116 determines that theauthentication is successful, the authentication module 116 may proceedto step 328, otherwise the authentication module 116 may proceed to step332.

At step 328, the server 110 may utilize the offer processing module 117to process the offer. The offer processing module 117 may apply theoffer to an account, such as a bank account or a credit card accountassociated with the user. Applying the offer to the user's account maymean that the user's account may be credited with a monetary amountassociated with the value of the offer or credit terms associated withthe user's account may be modified or the like.

At step 330, the server 110 may utilize the offer processing module 117to output a notification notifying the user that the offer wassuccessfully processed. The offer processing module 117 may output thenotification via the banking application 111.

At step 332, the server 110 may utilize the machine learning trainingmodule 118 to generate one or more training datasets using one or moremachine learning models. The machine learning models may label thetraining datasets based on the manner in which the user responded to thecustomized notification. For example, if the user receives notificationof an offer and decides to accept and redeem the offer, then after theoffer has been successfully processed by the offer processing module117, the machine learning training module 118 may cause the machinelearning model to generate a training dataset comprising information andconditions related to the accepted offer labeled as ‘redeemed,’ so as totrain the machine learning model with the types of offers that are ofinterest to the user and that the user is likely to redeem. The machinelearning training module 118 may also generate training datasets in thecase where the user receives notification of an offer and decides not toredeem the offer. The machine learning training module 118 may determinethat the user decides not to redeem the offer if the selection orscanning of the security key is not received within a predefined periodof time. In this case, the machine learning training module 118 maycause the machine learning model to generate a training datasetcomprising information and conditions related to the unredeemed offerlabeled as ‘not redeemed.’

FIG. 3B discloses an example method of an authentication and frauddetection process in the notification generation and authenticationsystem 100, in accordance with one or more aspects described herein. Theexample methods are described as being performed by the server 110,however the example methods may be performed by any one of the server110, the one or more user computing devices 130, the computing device200, and/or a combination thereof.

After one or more customized notifications are generated and selectedfor the user, the notifications may be output. The notification mayinclude information about an offer, such as a description of a productor service and details about the offer. The notification mayadditionally or alternatively include a unique security key generatedfor the offer. The security key may be used to ensure that only the userfor whom the notification was generated may redeem the offer. Thesecurity key may be implemented as a hyperlink, a QR code, a bar code,etc. and may be embedded with information identifying the notificationor the offer, such as the notification identification number. The usermay select or scan, using an image capturing device or bar/QR codereader application, the security key to redeem the offer.

Upon selection or scanning of the security key, the sever 110 mayutilize the authentication module 116 to perform an authentication andfraud detection process to authentic redemption of the offer. Inparticular, at step 334, in response to selection and/or scanning of thesecurity key, a script may be executed by the authentication module 116,which may cause identification information of the notification and/oroffer and identification information of the device from which thesecurity key was selected or scanned to be transmitted to the server110. Additionally, the one or more operating parameters of the devicefrom which the security key was selected or scanned may also betransmitted to the server 110.

At step 336, the authentication module 116 may query the database 120using the identification information of the notification and/or offer toidentify the user for whom the notification was generated.

At step 338, the authentication module 116 may further query thedatabase 120 to determine stored identification information associatedwith one or more devices registered by the user to be used with thenotification generation and authentication system 100.

At step 340, the authentication module 116 may compare the storedidentification information associated with the user's registered deviceswith the received identification information of the device from whichthe security key was selected and/or scanned.

At step 342, the server 110 may control the authentication module 116 todetermine whether the received identification information of the devicefrom which the security key was selected and/or scanned matchesidentification information for one of the user's registered devices. Ifthe information matches, the authentication module 116 may determinethat the proper recipient attempts to redeem the offer and may proceedto step 346. If the information does not match, the authenticationmodule 116 may determine that individual attempting to redeem the offermight not be the proper recipient of the offer and may proceed to step344.

At step 344, the authentication module 116 may determine that theauthentication was unsuccessful. In some cases, the authenticationmodule 116 may require additional or different forms of authentication,when authentication is unsuccessful (in some cases, the additional ordifferent forms of authentication may additionally be required as anadditional level of protection even when the authentication of the offerredemption is successful). For instance, the authentication module 116may require a password to be entered, a fingerprint scan, a facial scan,an iris scan, or the like and may attempt to on authenticate the user inthis way. If the subsequent attempt at authentication is successful, theauthentication module 116 may proceed to step 346, otherwise the processmay end and the authentication module 116 may output a notification,such as via the banking application 111, that redemption of the offercould not be authenticated. In some cases, the offer may be invalidatedupon unsuccessful redemption of the offer.

At step 346, if the authentication module 116 determines that the properrecipient attempts to redeem the offer, the authentication module 116may then perform one or more assessments to determine whether the user'sGPS location is accurate, to ensure that the user does not attempt toredeem an offer that she might not be entitled to based on her location.Accordingly, the authentication module 116 may analyze the one or moreoperating parameters received at step 334 to determine a likelihood thatthe GPS location of the device from which the security key was selectedand/or scanned is being spoofed. For instance, the authentication module116 may analyze the one or more operating parameters to determinewhether certain applications known to perform location spoofing areoperating on the device. The operating parameters may include an IPaddress associated with the device and the authentication module 116 mayadditionally or alternatively compare a location associated with the IPaddress with the GPS location of the device.

The authentication module 116 may additionally compare the IP addresswith known virtual private network (VPN) IP addresses.

At step 348, if the authentication module 116 determines that it islikely that the GPS location is being spoofed, the authentication module116 may proceed to step 350. If the authentication module 116 determinesthat it is not likely that the GPS location of the device is beingspoofed, the authentication module 116 may proceed to step 354.

At step 350, the authentication module 116 may output a notificationindicating that certain applications or VPN services on the device mustbe disabled prior to attempting to redeem the offer. After disabling thecertain applications or VPN services, the user may be provided anopportunity to attempt to redeem the offer again, and the authenticationmodule 116 may proceed to step 352, to determine again whether the GPSlocation is likely spoofed. After a threshold number of attempts, if theauthentication module 116 determines that it remains likely that the GPSlocation of the device is being spoofed, the authentication module 116may proceed to step 344 and determine that authentication isunsuccessful.

At step 354, if the authentication module 116 determines that the properrecipient attempts to redeem the offer and that the location of thedevice from which the offer is redeemed is likely not spoofed, then atstep 354, the authentication module 116 may output a notification, viathe banking application 111, that the user may purchase the product orservice and that upon proof of purchase, the offer will be applied to anaccount associated with the user. The authentication module 116 mayinstruct the user on methods of providing proof of purchase. Forinstance, the authentication module 116 may provide instructions, suchas shown in user interface 400 g, to upload an image of a purchasereceipt showing that the product or service associated with the redeemedoffer was actually purchased. In some cases, the authentication module116 may instruct the user to scan a bar code, QR code, or the likelocated on a packaging or a tag attached to the product when the user isat home.

At step 356, the authentication module 116 may receive the proof ofpurchase. For example, the user may upload an image of a purchasereceipt or may scan a bar code or a QR code on a packaging or a tagassociated with the product. The authentication module 116 may receivethe uploaded receipt image or identification information associated withthe bar code/QR code and may store such proof of purchase in thedatabase 120 and/or in a memory associated with the first user computingdevice 130 a.

At step 358, the authentication module 116 may analyze and process thereceived proof of purchase to identify a product or service associatedwith the provided proof. For instance, if the user uploaded a receipt asproof of purchase, the authentication module 116 may convert the receiptimage to text and may analyze the receipt text to identify the purchasedetails included therein. If the user scanned a bar code or QR codeattached to the packaging or a tag of a product, the authenticationmodule 116 may identify, from the received identification informationassociated with the bar code/QR code, a name or description of theproduct that was scanned.

At step 360, the authentication module 116 may determine whether theproof of purchase is valid. That is, the authentication module 116 maydetermine whether identified product information for the provided proofreflects the product associated with the redeemed offer. For instance,the authentication module 116 may determine whether the purchase detailsextracted from a provided receipt or the product or service identifiedfrom a scanned bar code/QR code correspond to the product or serviceassociated with the redeemed offer.

In some cases, when the proof of purchase is a scan of a bar code or QRcode, the authentication module 116 may additionally capture a GPSlocation of the device that performed the scan at the time of thescanning to ensure that the user is not still located at the merchantstore where the item was to be purchased in order to determine whetherthe proof of purchase is valid. If the product is scanned while still atthe merchant store, the authentication module 116 may determine that theproof of purchase is not valid.

The authentication module 116 may also compare a time of redemption ofthe offer with a time of the scanning of the packaging or tag of theproduct to determine whether the proof of purchase is valid. If theproduct is scanned prior to redemption of the offer, the authenticationmodule 116 may determine that the proof of purchase is not valid.

The authentication module 116 may additionally make a furtherdetermination, based on again receiving one or more operating parametersof the device, of whether a GPS location of the device is likely spoofedto determine whether the proof of purchase is valid. If theauthentication module 116 determines that the location of the device islikely spoofed, the authentication module 116 may determine that theproof of purchase is not valid.

If the authentication module 116 determines that the proof of purchaseis valid, the authentication module 116 may proceed to step 362 toauthenticate redemption of the offer. If the authentication module 116determines that the proof of purchase is not valid, the authenticationmodule 116 may proceed to step 344 to determine that authentication isunsuccessful.

At step 362, upon determining that authentication is successful, theauthentication module 116 might notify the offer processing module 117that the offer may be processed, such as provided in step 328 of FIG.3A.

One or more aspects disclosed herein may be embodied in computer-usableor readable data and/or computer-executable instructions, such as in oneor more program modules, executed by one or more computers or otherdevices as described herein. Generally, program modules includeroutines, programs, objects, components, data structures, or the likethat perform particular tasks or implement particular abstract datatypes when executed by a processor in a computer or other device. Themodules may be written in a source code programming language that issubsequently compiled for execution, or may be written in a scriptinglanguage, such as (but not limited to) HTML or XML. Thecomputer-executable instructions may be stored on a computer-readablemedium, such as a hard disk, optical disk, removable storage media,solid-state memory, RAM, or the like. As will be appreciated by one ofskill in the art, the functionality of the program modules may becombined or distributed as desired in various embodiments. In addition,the functionality may be embodied in whole, or in part, in firmware orhardware equivalents such as integrated circuits, field programmablegate arrays (FPGA), or the like. Particular data structures may be usedto more effectively implement one or more aspects disclosed herein, andsuch data structures are contemplated within the scope ofcomputer-executable instructions and computer-usable data describedherein. Various aspects disclosed herein may be embodied as a method, acomputing device, a system, and/or a computer program product.

Although the present invention has been described in certain specificaspects, many additional modifications and variations would be apparentto those skilled in the art. In particular, any of the various processesdescribed above may be performed in alternative sequences and/or inparallel (on different computing devices) in order to achieve similarresults in a manner that is more appropriate to the requirements of aspecific application. It is therefore to be understood that the presentinvention may be practiced otherwise than specifically described withoutdeparting from the scope and spirit of the present invention. Thus,embodiments of the present invention should be considered in allrespects as illustrative and not restrictive. Accordingly, the scope ofthe invention should be determined not by the embodiments illustrated,but by the appended claims and their equivalents.

What is claimed is:
 1. A method comprising: inputting, by a computingdevice and to a machine learning model, a history associated with afirst user, a location of a mobile device of the first user and alocation of a first landmark, wherein the machine learning model istrained based on training data comprising: training offer informationindicating whether a training offer has been redeemed by a traininguser, product information for the training offer, and a distance betweena training landmark and a location of a computing device associated withthe training user when the training offer was generated; receiving, bythe computing device, as output from the machine learning model andbased on the history associated with the first user, a likelihood thatthe first user would redeem an offer for a first product associated withthe first landmark; based on the likelihood that the first user wouldredeem the offer for the first product, transmitting, from the computingdevice and to the mobile device of the first user, a notification of theoffer, wherein the notification of the offer includes a security key foraccessing the offer; receiving, by the computing device, an indicationof a selection of the security key; authenticating, based on determiningthat identification information of a device sending the indication ofthe selection of the security key matches identification informationassociated with one or more devices of the first user and based on adistance between the first landmark and the device sending theindication of the selection of the security key, the first user; andapplying, based on authentication of the first user, the offer to anaccount associated with the first user.
 2. The method of claim 1,further comprising: determining, utilizing a web script configured toidentify key words on a web page associated with the first landmark, oneor more products associated with the first landmark comprising the firstproduct.
 3. The method of claim 1, further comprising: determining,utilizing optical character recognition (OCR) to process an image of areceipt for a transaction made by the first user, one or more productsassociated with the history of the first user.
 4. The method of claim 1,further comprising: after determining that the mobile device is within apredetermined distance of the first landmark: receiving, from the mobiledevice, one or more operating parameters comprising an internet protocol(IP) address of the mobile device; and based on determining that alocation associated with the IP address does not match the location ofthe mobile device, sending, to the mobile device, a notification todisable a virtual private network (VPN) service on the mobile device. 5.The method of claim 1, wherein authenticating the first user comprises:receiving, in response to the selection of the security key, securitykey information comprising information related to the offer; querying,based on the security key information, a database to determine a userfor whom the notification of the offer was generated, wherein the userfor whom the notification of the offer was generated is the first user;and querying the database to determine identification informationassociated with one or more devices of the first user.
 6. The method ofclaim 5, wherein the one or more devices of the first user comprise themobile device of the first user or a different device of the first user.7. The method of claim 1, wherein authenticating the first user furthercomprises: updating the machine learning model with informationassociated with the offer comprising a distance between the traininglandmark and the location of the training user when the security keyassociated with the training offer was selected by the training usercomputing device; and determining, using the updated machine learningmodel and based on the distance between the first landmark and thedevice sending the indication of the selection of the security key, alikelihood that the first user has redeemed the offer, wherein applyingthe offer to the account associated with the first user is further basedon the likelihood that the first user has redeemed the offer.
 8. Themethod of claim 1, further comprising: updating, after receiving theindication of the selection of the security key and after authenticatingthe first user, the machine learning model with information associatedwith the offer, wherein the information associated with the offerfurther comprises one or more of: the first product, the first landmark,a date and time of transmission of the notification of the offer, a dateand time of the selection of the security key, a date and timeassociated with the information indicating that the first user purchasedthe first product, a value associated with the offer, a type of theoffer, or a price of the first product at the first landmark.
 9. Themethod of claim 1, wherein the history of the first user comprisesinformation indicating one or more of: spending patterns associated withthe first user, products preferred by the first user, merchantspreferred by the first user, or average spending of the first user fordifferent categories of products.
 10. The method of claim 1, furthercomprising: receiving, from the mobile device, information indicatingthat the first user performed web browsing for the first product; andgenerating the notification of the offer based on the informationindicating that the first user performed the web browsing for the firstproduct.
 11. The method of claim 1, further comprising: querying adatabase associated with the first landmark to determine a stock levelof one or more products associated with the first landmark; andgenerating the notification based on the stock level of the one or moreproducts.
 12. A computing device comprising: one or more processors; andmemory storing instructions that, when executed by the one or moreprocessors, cause the computing device to: input, to a machine learningmodel, a history associated with a first user, a location of a mobiledevice of the first user and a location of a first landmark; receive, asoutput from the machine learning model and based on the historyassociated with the first user, a likelihood that the first user wouldredeem an offer for a first product associated with the first landmark;based on the likelihood that the first user would redeem the offer forthe first product, transmit, to the mobile device of the first user, anotification of the offer, wherein the notification of the offerincludes a security key for accessing the offer; receive an indicationof a selection of the security key; authenticate, based on determiningthat identification information of a device sending the indication ofthe selection of the security key matches identification informationassociated with one or more devices of the first user and based on adistance between the first landmark and the device sending theindication of the selection of the security key, the first user; andapply, based on authentication of the first user, the offer to anaccount associated with the first user.
 13. The computing device ofclaim 12, wherein the instructions, when executed by the one or moreprocessors, cause the computing device to: train, using training data,the machine learning model to determine a likelihood that a traininguser would redeem a training offer, wherein the training data comprises:training offer information indicating whether the training offer hasbeen redeemed by the training user, product information for the trainingoffer, and a distance between a training landmark and a location of acomputing device associated with the training user when the trainingoffer was generated.
 14. The computing device of claim 12, wherein theinstructions, when executed by the one or more processors, cause thecomputing device to: determine, utilizing a web script configured toidentify key words on a web page associated with the first landmark, oneor more products associated with the first landmark comprising the firstproduct.
 15. The computing device of claim 12, wherein the instructions,when executed by the one or more processors, cause the computing deviceto: determine, utilizing optical character recognition (OCR) to processan image of a receipt for a transaction made by the first user, one ormore products associated with the history of the first user.
 16. Thecomputing device of claim 12, wherein the instructions, when executed bythe one or more processors, cause the computing device to: receive, fromthe mobile device, one or more operating parameters comprising aninternet protocol (IP) address of the mobile device; and based ondetermining that a location associated with the IP address does notmatch the location of the mobile device, send, to the mobile device, anotification to disable a virtual private network (VPN) service on themobile device.
 17. One or more non-transitory, computer-readable mediastoring instructions that, when executed by one or more processors of acomputing device, cause the computing device to: input, to a machinelearning model, a history associated with a first user, a location of amobile device of the first user and a location of a first landmark;receive, as output from the machine learning model and based on thehistory associated with the first user, a likelihood that the first userwould redeem an offer for a first product associated with the firstlandmark; based on the likelihood that the first user would redeem theoffer for the first product, transmit, to the mobile device of the firstuser, a notification of the offer; authenticate, based on determiningthat identification information of a device sending a selection of thenotification to redeem the offer matches identification informationassociated with one or more devices of the first user and based on adistance between the first landmark and the device sending theselection, the first user; and apply, based on authentication of thefirst user, the offer to an account associated with the first user. 18.The one or more non-transitory, computer-readable media of claim 17,wherein the notification of the offer includes a security key foraccessing the offer, and wherein the instructions, when executed by theone or more processors, cause the computing device to receive anindication of a selection of the security key; and wherein authenticatethe first user is further based on determining that the identificationinformation of a device sending the indication of the selection of thesecurity key matches the identification information associated with oneor more devices of the first user and based on a distance between thefirst landmark and the device sending the indication of the selection ofthe security key.
 19. The one or more non-transitory, computer-readablemedia of claim 18, wherein the instructions, when executed by the one ormore processors, cause the computing device to authenticate the firstuser by causing the computing device to: receive, in response to theselection of the security key, security key information comprisinginformation related to the offer; query, based on the security keyinformation, a database to determine a user for whom the notification ofthe offer was generated, wherein the user for whom the notification ofthe offer was generated is the first user; and query the database todetermine identification information associated with one or more devicesof the first user.
 20. The one or more non-transitory, computer-readablemedia of claim 17, wherein the instructions, when executed by the one ormore processors, cause the computing device to: generate thenotification of the offer for the first product based on: analyzing,using the machine learning model, the history associated with the firstuser to generate one or more of a product score and a spending score;generating, based on one or more of the product score and the spendingscore, a ranked list of one or more notifications associated with one ormore products; and selecting, from the ranked list of the one or morenotifications, the notification of the offer for the first product.